package com.zyj.benchmark.test.formap;

import java.util.HashMap;
import java.util.Map;

/**
 * 测试
 * 1. 通过for循环match快
 * 还是
 * 2. 通过Map直接拿快
 */
public enum EnumMatch {

    A(1),
    B(2),
    C(3),
//    D(4),
//    E(5),
//    F(6),
//    G(7),
//    H(8),
//    I(9),
//    J(10),


    NULL(-1),
    ;


    private Integer value;


    EnumMatch(int value) {
        this.value = value;
    }

    public static EnumMatch matchWithFor(Integer value) {
        for (EnumMatch enumMatch : values()) {
            if (enumMatch.value.equals(value)) {
                return enumMatch;
            }
        }
        return NULL;
    }

    private static final Map<Integer, EnumMatch> enumMap = new HashMap<>();

    static {
        for (EnumMatch enumMatch : values()) {
            enumMap.put(enumMatch.value, enumMatch);
        }
    }

    public static EnumMatch matchWithMap(Integer value) {
        EnumMatch result = enumMap.get(value);
        if (result == null) {
            result = EnumMatch.NULL;
        }
        return result;
    }
}
